package com.cnvai.cms.javabean.model;

import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.List;

public class GrpArticleclassExample {
    protected String orderByClause;

    protected boolean distinct;

    protected List<Criteria> oredCriteria;

    public GrpArticleclassExample() {
        oredCriteria = new ArrayList<Criteria>();
    }

    public void setOrderByClause(String orderByClause) {
        this.orderByClause = orderByClause;
    }

    public String getOrderByClause() {
        return orderByClause;
    }

    public void setDistinct(boolean distinct) {
        this.distinct = distinct;
    }

    public boolean isDistinct() {
        return distinct;
    }

    public List<Criteria> getOredCriteria() {
        return oredCriteria;
    }

    public void or(Criteria criteria) {
        oredCriteria.add(criteria);
    }

    public Criteria or() {
        Criteria criteria = createCriteriaInternal();
        oredCriteria.add(criteria);
        return criteria;
    }

    public Criteria createCriteria() {
        Criteria criteria = createCriteriaInternal();
        if (oredCriteria.size() == 0) {
            oredCriteria.add(criteria);
        }
        return criteria;
    }

    protected Criteria createCriteriaInternal() {
        Criteria criteria = new Criteria();
        return criteria;
    }

    public void clear() {
        oredCriteria.clear();
        orderByClause = null;
        distinct = false;
    }

    protected abstract static class GeneratedCriteria {
        protected List<Criterion> criteria;

        protected GeneratedCriteria() {
            super();
            criteria = new ArrayList<Criterion>();
        }

        public boolean isValid() {
            return criteria.size() > 0;
        }

        public List<Criterion> getAllCriteria() {
            return criteria;
        }

        public List<Criterion> getCriteria() {
            return criteria;
        }

        protected void addCriterion(String condition) {
            if (condition == null) {
                throw new RuntimeException("Value for condition cannot be null");
            }
            criteria.add(new Criterion(condition));
        }

        protected void addCriterion(String condition, Object value, String property) {
            if (value == null) {
                throw new RuntimeException("Value for " + property + " cannot be null");
            }
            criteria.add(new Criterion(condition, value));
        }

        protected void addCriterion(String condition, Object value1, Object value2, String property) {
            if (value1 == null || value2 == null) {
                throw new RuntimeException("Between values for " + property + " cannot be null");
            }
            criteria.add(new Criterion(condition, value1, value2));
        }

        public Criteria andAcsidIsNull() {
            addCriterion("ACSID is null");
            return (Criteria) this;
        }

        public Criteria andAcsidIsNotNull() {
            addCriterion("ACSID is not null");
            return (Criteria) this;
        }

        public Criteria andAcsidEqualTo(BigDecimal value) {
            addCriterion("ACSID =", value, "acsid");
            return (Criteria) this;
        }

        public Criteria andAcsidNotEqualTo(BigDecimal value) {
            addCriterion("ACSID <>", value, "acsid");
            return (Criteria) this;
        }

        public Criteria andAcsidGreaterThan(BigDecimal value) {
            addCriterion("ACSID >", value, "acsid");
            return (Criteria) this;
        }

        public Criteria andAcsidGreaterThanOrEqualTo(BigDecimal value) {
            addCriterion("ACSID >=", value, "acsid");
            return (Criteria) this;
        }

        public Criteria andAcsidLessThan(BigDecimal value) {
            addCriterion("ACSID <", value, "acsid");
            return (Criteria) this;
        }

        public Criteria andAcsidLessThanOrEqualTo(BigDecimal value) {
            addCriterion("ACSID <=", value, "acsid");
            return (Criteria) this;
        }

        public Criteria andAcsidIn(List<BigDecimal> values) {
            addCriterion("ACSID in", values, "acsid");
            return (Criteria) this;
        }

        public Criteria andAcsidNotIn(List<BigDecimal> values) {
            addCriterion("ACSID not in", values, "acsid");
            return (Criteria) this;
        }

        public Criteria andAcsidBetween(BigDecimal value1, BigDecimal value2) {
            addCriterion("ACSID between", value1, value2, "acsid");
            return (Criteria) this;
        }

        public Criteria andAcsidNotBetween(BigDecimal value1, BigDecimal value2) {
            addCriterion("ACSID not between", value1, value2, "acsid");
            return (Criteria) this;
        }

        public Criteria andAcsparentIsNull() {
            addCriterion("ACSPARENT is null");
            return (Criteria) this;
        }

        public Criteria andAcsparentIsNotNull() {
            addCriterion("ACSPARENT is not null");
            return (Criteria) this;
        }

        public Criteria andAcsparentEqualTo(BigDecimal value) {
            addCriterion("ACSPARENT =", value, "acsparent");
            return (Criteria) this;
        }

        public Criteria andAcsparentNotEqualTo(BigDecimal value) {
            addCriterion("ACSPARENT <>", value, "acsparent");
            return (Criteria) this;
        }

        public Criteria andAcsparentGreaterThan(BigDecimal value) {
            addCriterion("ACSPARENT >", value, "acsparent");
            return (Criteria) this;
        }

        public Criteria andAcsparentGreaterThanOrEqualTo(BigDecimal value) {
            addCriterion("ACSPARENT >=", value, "acsparent");
            return (Criteria) this;
        }

        public Criteria andAcsparentLessThan(BigDecimal value) {
            addCriterion("ACSPARENT <", value, "acsparent");
            return (Criteria) this;
        }

        public Criteria andAcsparentLessThanOrEqualTo(BigDecimal value) {
            addCriterion("ACSPARENT <=", value, "acsparent");
            return (Criteria) this;
        }

        public Criteria andAcsparentIn(List<BigDecimal> values) {
            addCriterion("ACSPARENT in", values, "acsparent");
            return (Criteria) this;
        }

        public Criteria andAcsparentNotIn(List<BigDecimal> values) {
            addCriterion("ACSPARENT not in", values, "acsparent");
            return (Criteria) this;
        }

        public Criteria andAcsparentBetween(BigDecimal value1, BigDecimal value2) {
            addCriterion("ACSPARENT between", value1, value2, "acsparent");
            return (Criteria) this;
        }

        public Criteria andAcsparentNotBetween(BigDecimal value1, BigDecimal value2) {
            addCriterion("ACSPARENT not between", value1, value2, "acsparent");
            return (Criteria) this;
        }

        public Criteria andAcscodeIsNull() {
            addCriterion("ACSCODE is null");
            return (Criteria) this;
        }

        public Criteria andAcscodeIsNotNull() {
            addCriterion("ACSCODE is not null");
            return (Criteria) this;
        }

        public Criteria andAcscodeEqualTo(String value) {
            addCriterion("ACSCODE =", value, "acscode");
            return (Criteria) this;
        }

        public Criteria andAcscodeNotEqualTo(String value) {
            addCriterion("ACSCODE <>", value, "acscode");
            return (Criteria) this;
        }

        public Criteria andAcscodeGreaterThan(String value) {
            addCriterion("ACSCODE >", value, "acscode");
            return (Criteria) this;
        }

        public Criteria andAcscodeGreaterThanOrEqualTo(String value) {
            addCriterion("ACSCODE >=", value, "acscode");
            return (Criteria) this;
        }

        public Criteria andAcscodeLessThan(String value) {
            addCriterion("ACSCODE <", value, "acscode");
            return (Criteria) this;
        }

        public Criteria andAcscodeLessThanOrEqualTo(String value) {
            addCriterion("ACSCODE <=", value, "acscode");
            return (Criteria) this;
        }

        public Criteria andAcscodeLike(String value) {
            addCriterion("ACSCODE like", value, "acscode");
            return (Criteria) this;
        }

        public Criteria andAcscodeNotLike(String value) {
            addCriterion("ACSCODE not like", value, "acscode");
            return (Criteria) this;
        }

        public Criteria andAcscodeIn(List<String> values) {
            addCriterion("ACSCODE in", values, "acscode");
            return (Criteria) this;
        }

        public Criteria andAcscodeNotIn(List<String> values) {
            addCriterion("ACSCODE not in", values, "acscode");
            return (Criteria) this;
        }

        public Criteria andAcscodeBetween(String value1, String value2) {
            addCriterion("ACSCODE between", value1, value2, "acscode");
            return (Criteria) this;
        }

        public Criteria andAcscodeNotBetween(String value1, String value2) {
            addCriterion("ACSCODE not between", value1, value2, "acscode");
            return (Criteria) this;
        }

        public Criteria andAcsnameIsNull() {
            addCriterion("ACSNAME is null");
            return (Criteria) this;
        }

        public Criteria andAcsnameIsNotNull() {
            addCriterion("ACSNAME is not null");
            return (Criteria) this;
        }

        public Criteria andAcsnameEqualTo(String value) {
            addCriterion("ACSNAME =", value, "acsname");
            return (Criteria) this;
        }

        public Criteria andAcsnameNotEqualTo(String value) {
            addCriterion("ACSNAME <>", value, "acsname");
            return (Criteria) this;
        }

        public Criteria andAcsnameGreaterThan(String value) {
            addCriterion("ACSNAME >", value, "acsname");
            return (Criteria) this;
        }

        public Criteria andAcsnameGreaterThanOrEqualTo(String value) {
            addCriterion("ACSNAME >=", value, "acsname");
            return (Criteria) this;
        }

        public Criteria andAcsnameLessThan(String value) {
            addCriterion("ACSNAME <", value, "acsname");
            return (Criteria) this;
        }

        public Criteria andAcsnameLessThanOrEqualTo(String value) {
            addCriterion("ACSNAME <=", value, "acsname");
            return (Criteria) this;
        }

        public Criteria andAcsnameLike(String value) {
            addCriterion("ACSNAME like", value, "acsname");
            return (Criteria) this;
        }

        public Criteria andAcsnameNotLike(String value) {
            addCriterion("ACSNAME not like", value, "acsname");
            return (Criteria) this;
        }

        public Criteria andAcsnameIn(List<String> values) {
            addCriterion("ACSNAME in", values, "acsname");
            return (Criteria) this;
        }

        public Criteria andAcsnameNotIn(List<String> values) {
            addCriterion("ACSNAME not in", values, "acsname");
            return (Criteria) this;
        }

        public Criteria andAcsnameBetween(String value1, String value2) {
            addCriterion("ACSNAME between", value1, value2, "acsname");
            return (Criteria) this;
        }

        public Criteria andAcsnameNotBetween(String value1, String value2) {
            addCriterion("ACSNAME not between", value1, value2, "acsname");
            return (Criteria) this;
        }

        public Criteria andAcsflagIsNull() {
            addCriterion("ACSFLAG is null");
            return (Criteria) this;
        }

        public Criteria andAcsflagIsNotNull() {
            addCriterion("ACSFLAG is not null");
            return (Criteria) this;
        }

        public Criteria andAcsflagEqualTo(String value) {
            addCriterion("ACSFLAG =", value, "acsflag");
            return (Criteria) this;
        }

        public Criteria andAcsflagNotEqualTo(String value) {
            addCriterion("ACSFLAG <>", value, "acsflag");
            return (Criteria) this;
        }

        public Criteria andAcsflagGreaterThan(String value) {
            addCriterion("ACSFLAG >", value, "acsflag");
            return (Criteria) this;
        }

        public Criteria andAcsflagGreaterThanOrEqualTo(String value) {
            addCriterion("ACSFLAG >=", value, "acsflag");
            return (Criteria) this;
        }

        public Criteria andAcsflagLessThan(String value) {
            addCriterion("ACSFLAG <", value, "acsflag");
            return (Criteria) this;
        }

        public Criteria andAcsflagLessThanOrEqualTo(String value) {
            addCriterion("ACSFLAG <=", value, "acsflag");
            return (Criteria) this;
        }

        public Criteria andAcsflagLike(String value) {
            addCriterion("ACSFLAG like", value, "acsflag");
            return (Criteria) this;
        }

        public Criteria andAcsflagNotLike(String value) {
            addCriterion("ACSFLAG not like", value, "acsflag");
            return (Criteria) this;
        }

        public Criteria andAcsflagIn(List<String> values) {
            addCriterion("ACSFLAG in", values, "acsflag");
            return (Criteria) this;
        }

        public Criteria andAcsflagNotIn(List<String> values) {
            addCriterion("ACSFLAG not in", values, "acsflag");
            return (Criteria) this;
        }

        public Criteria andAcsflagBetween(String value1, String value2) {
            addCriterion("ACSFLAG between", value1, value2, "acsflag");
            return (Criteria) this;
        }

        public Criteria andAcsflagNotBetween(String value1, String value2) {
            addCriterion("ACSFLAG not between", value1, value2, "acsflag");
            return (Criteria) this;
        }
    }

    public static class Criteria extends GeneratedCriteria {

        protected Criteria() {
            super();
        }
    }

    public static class Criterion {
        private String condition;

        private Object value;

        private Object secondValue;

        private boolean noValue;

        private boolean singleValue;

        private boolean betweenValue;

        private boolean listValue;

        private String typeHandler;

        public String getCondition() {
            return condition;
        }

        public Object getValue() {
            return value;
        }

        public Object getSecondValue() {
            return secondValue;
        }

        public boolean isNoValue() {
            return noValue;
        }

        public boolean isSingleValue() {
            return singleValue;
        }

        public boolean isBetweenValue() {
            return betweenValue;
        }

        public boolean isListValue() {
            return listValue;
        }

        public String getTypeHandler() {
            return typeHandler;
        }

        protected Criterion(String condition) {
            super();
            this.condition = condition;
            this.typeHandler = null;
            this.noValue = true;
        }

        protected Criterion(String condition, Object value, String typeHandler) {
            super();
            this.condition = condition;
            this.value = value;
            this.typeHandler = typeHandler;
            if (value instanceof List<?>) {
                this.listValue = true;
            } else {
                this.singleValue = true;
            }
        }

        protected Criterion(String condition, Object value) {
            this(condition, value, null);
        }

        protected Criterion(String condition, Object value, Object secondValue, String typeHandler) {
            super();
            this.condition = condition;
            this.value = value;
            this.secondValue = secondValue;
            this.typeHandler = typeHandler;
            this.betweenValue = true;
        }

        protected Criterion(String condition, Object value, Object secondValue) {
            this(condition, value, secondValue, null);
        }
    }
}